This invention relates generally to calculators and more particularly to programmable calculators that may be controlled both manually from the keyboard and automatically by means of a stored program.
Calculators constructed according to the prior art have generally been limited in functional capability due to restrictions imposed on the size of memory. To insulate the user from the complexities of standard computer operating systems that embody compile and load techniques, desktop calculators have generally employed interpreters. While these calculators result in simplifying the user/machine interface, that result is achieved at the expense of increased memory consumption because the interpreter, the user's program, and the user's data must all occupy the same address space. This condition is aggravated by attempted language enhancements that require additional address space, thus robbing the user of more and more of his memory space. Various proposed solutions to this general problem of insufficient memory space, such as the use of virtual memory, have generally been expensive and complex and thus have not proven practical for incorporation in desk-top calculators. The calculator constructed according to the present invention solves this problem by employing a memory address extension scheme that provides a tremendous increment in available memory address space while permitting the use of standard off-the-shelf processors and memory components. This arrangement is advantageous over the mere expedient of increasing the number of address bits by some small number. Memory address extension, as employed in the present calculator, utterly removes the upper limit on the amount of available address space. This is accomplished by dividing the memory into a plurality of 32K word fifteen-bit address spaces called blocks, of which there may be as many as 64K. The calculator includes an operating system that automatically controls a memory address extension circuit to arbitrarily determine which two blocks represent the processor's native sixteen-bit address space. By that arrangement, those blocks of memory that are intended for storage of the user's program and data are preserved exclusively for the user in spite of the fact that additional memory is required to implement desired language enhancements.
Conventional calculators have also proven disadvantageous due to their relatively slow program execution. Attempts at solving this problem by merely increasing the speed of the processor have been met with various practical limitations such as memory cycle time. In order to increase program execution speed the present calculator employs direct memory addressing (DMA), an operating system that is structured to accomodate an interrupt system, I/O buffering, and a dual processor architecture that divides the operations performed by the calculator between two processors. As a result, the present calculator provides a high-speed Basic language interpreter that includes desirable language enhancements while providing the user with more read-write memory than heretofore available in desk-top calculators.
Among the language enhancement features made possible by the expanded memory of the present calculator are an editline mode capability for enhancing, particularly in conjunction with a CRT, editing and program entry operations, an edit statement that permits the editing of string variables under program control, a CRT display mode that is segmented in a manner which organizes the displayed information more usefully, program selectable serial and overlap modes of I/O operation, a group of control keys that enable the user to generate a pseudo-interrupt incorporating a priority scheme, program control of a live keyboard, multiple nondestructive, bidirectional recall of information entered from the keyboard, a CRT-to-printer dump mode that permits a dot-for-dot transfer of a graphics image appearing on the CRT to the printer, and the ability to modify stored programs during execution.
In addition, the calculator provides a number of advanced features that involve the thermal printer located within the calculator mainframe. A number of these features combine to provide quiet, high-speed printer operation while minimizing power consumption. For example, a single monolithic print head enhances dot-for-dot CRT-to-printer dump capability by providing printable dot positions within the normally blank space between adjacent characters.
Many other features of this invention will become apparent to those persons skilled in the art from an examination of the following detailed description and drawings.